推荐:
比较好的在线C++工具:https://www.shucunwang.com/RunCode/cpp/
main函数:
- mian()的返回类型必须是int。
- 在大多数系统中main的返回值被用来指示状态,返回0表示成功,非0的含义由系统定义。
编译
- c++程序通过编译器生成一个可执行文件,windows下是.exe文件,unix下可执行文件是.out(没规定可执行文件名时)。
- GNU编译器:
|
|
-o后面的参数是指定生成文件的名字
此命令在windows下生成progname.exe文件,在unix系统中生存没有后缀的文件progname,如果unix中没有指定参数-o progname则生成a.out的可执行文件。
const限定符
1.基础知识:
- 程序是不能改变const值的
- const对象必须初始化
2.初始化
- 非const可以初始化const对象:
|
|
- 对于const变量不管是声明还是定义都添加
extern关键字,这样在其他文件中都可以共享了
定义:extern const int a=1;
其他文件中声明:extern const int a;
3.常量引用
const int c=1; const int &ci=c;
- 程序员把“对const的引用”简称为‘常量引用’。但是严格来说并不存在常量引用,因为引用并不是一个对象,所以没办法让引用本身恒定不变,事实上由于C++并不允许随意改变引用所绑定的对象,所以从这层上理解所有的引用又都算常量。
- 常量引用可能引用的对象并不是一个const对象:
int i=2; const int &b=i;
4.指针和常量
指向常量的指针:想要存放常量对象的地址只能用指向常量的指针const double pi=3.14;- 指针的类型必须与它所指向的对象的类型一致,例外:允许一个指向常量的指针指向一个非常量对。指向常量的指针或引用,不过是指针或引用“自以为是”罢了,它们觉得自己指向了常量,所以自觉地不去改变所指向对象的值。
常量指针:把指针本身定义为常量啊,不变的是指针本身的值而非指向的那个值
常量指针int *const my=&a;
注:- 常量指针必须初始化
指向常量的指针和常量指针的辨别:
const int *p:距离p最近的是*意味着p本身是一个指针,指针的类型由声明符的其余部分确定。int *const p距离p最近的是const,意味着p是一个常量对象,对象的类型由声明符的其他部分确定。顶层const:指针本事是个常量底层const:指针所指的对象是个常量